/****************************************Copyright (c)*************************
**                               版权所有 (C), 2020-2030, 零匙科技
**
**                                 https://www.0k.com/
**
**
**-----------------------------------------------------------------------------
**--------------当前版本修订---------------------------------------------------
** 版  本: v1.0.0
** 日　期: 2022年02月15日
** 描　述: 1:协议初版
** 作  者：zouchuan
**-----------------------------------------------------------------------------
******************************************************************************/
#ifndef _LEOKEY_BLE_MCU_API_H_
#define _LEOKEY_BLE_MCU_API_H_

    
#include "leokey_ble.h"

/*****************************************************************************
函数名称 : hex_to_bcd
功能描述 : hex转bcd
输入参数 : Value_H:高字节/Value_L:低字节
返回参数 : bcd_value:转换完成后数据
*****************************************************************************/
unsigned char hex_to_bcd(unsigned char Value_H, unsigned char Value_L);


/*****************************************************************************
函数名称 : my_strlen
功能描述 : 求字符串长度
输入参数 :
返回参数 :
*****************************************************************************/
unsigned long my_strlen(unsigned char *str);


/*****************************************************************************
函数名称 : my_memset
功能描述 : 把src所指内存区域的前count个字节设置成字符c
输入参数 :
返回参数 :
*****************************************************************************/
void *my_memset(void *src, unsigned char ch, unsigned short count);


/*****************************************************************************
函数名称 : mymemcpy
功能描述 : 内存拷贝
输入参数 :
返回参数 :
*****************************************************************************/
void *my_memcpy(void *dest, const void *src, unsigned short count);


/*****************************************************************************

*****************************************************************************
函数名称 : my_strcpy
功能描述 : 内存拷贝
输入参数 : dest:目标地址
           src:源地址
返回参数 : 数据处理完后的源地址
*****************************************************************************/
char *my_strcpy(char *dest, const char *src);


/*****************************************************************************
函数名称 : my_strcmp
功能描述 : 内存拷贝
输入参数 : s1:字符串1
           s2:字符串2
返回参数 : 大小比较值，0:s1=s2; -1:s1<s2; 1:s1>s2
*****************************************************************************/
int my_strcmp(char *s1, char *s2);

/*****************************************************************************
函数名称 : byte_to_short
功能描述 : 将2字节合并为1个16bit变量
输入参数 : value:2字节数组
返回参数 : number:合并完成后的16bit变量
****************************************************************************/
unsigned short byte_to_short(const unsigned char value[2]);

/*****************************************************************************
函数名称 : int_to_byte
功能描述 : 将int类型拆分四个字节
输入参数 : number:4字节原数据;value:处理完成后4字节数据
返回参数 :无
****************************************************************************/
void int_to_byte(unsigned long number, unsigned char value[4]);


/*****************************************************************************
函数名称 : byte_to_int
功能描述 : 将4字节合并为1个32bit变量
输入参数 : value:4字节数组
返回参数 : number:合并完成后的32bit变量
****************************************************************************/
unsigned long byte_to_int(const unsigned char value[4]);





/*****************************************************************************
函数名称 : uart_receive_input
功能描述 : 收数据处理
输入参数 : value:串口收到字节数据
返回参数 : 无
使用说明 : 在MCU串口处理函数中调用该函数,并将接收到的数据作为参数传入
*****************************************************************************/
unsigned char uart_receive_input(unsigned char value);


/*****************************************************************************
函数名称 : leokey_ble_uart_service
功能描述 : leokey_ble串口处理服务
输入参数 : 无
返回参数 : 无
使用说明 : 在MCU主函数while循环中调用该函数
*****************************************************************************/
void leokey_ble_uart_service(void);


/*****************************************************************************
函数名称 :  leokey_ble_protocol_init
功能描述 : 协议串口初始化函数
输入参数 : 无
返回参数 : 无
使用说明 : 在MCU初始化代码中调用该函数
*****************************************************************************/
void leokey_ble_protocol_init(void);


/*****************************************************************************
函数名称 : uart_transmit_output
功能描述 : 发数据处理
输入参数 : value:串口收到字节数据
返回参数 : 无
使用说明 : 请将MCU串口发送函数填入该函数内,并将接收到的数据作为参数传入串口发送函数
*****************************************************************************/
void uart_transmit_output(unsigned char value);

#endif
